const Sequleize = require('sequelize');

const seq = require('./sequelize');

// 创建模型（表user）
const user = seq.define('user', {
    // id会自动创建，并且设为主键、自增
    // 表的键
    username: {
        // 数据类型
        type: Sequleize.STRING, // varchar(255)
        allowNull: false, // 是否可以为空
        commient: '用户名', // 注释、解释
    },
    passward: {
        type: Sequleize.STRING,
        allowNull: false,
        comment: '密码',
    },
    nickname: {
        type: Sequleize.STRING,
        allowNull: false,
        comment: '昵称',
    },
    // 自动创建：createdAt 与 updatedAt
});

const blog = seq.define('blog', {
    userId: {
        type: Sequleize.INTEGER,
        allowNull: true,
        comment: '外键',
    },
    title: {
        type: Sequleize.STRING,
        allowNull: false,
        comment: '标题',
    },
    content: {
        type: Sequleize.TEXT,
        allowNull: false,
        comment: '内容',
    },
})

// 外键关联
blog.belongsTo(user, {
    // 创建外键 blog.userId -> user.id
    foreignKey: 'userId',
})

// 外键关联
user.hasMany(blog, {
    // 创建外键 blog.userId -> user.id
    foreignKey: 'userId',
})

// 导出模型
module.exports = {
    user,
    blog,
}